OpenAPI Specification (OAS), যা আগে Swagger নামে পরিচিত ছিল, একটি ওপেন স্ট্যান্ডার্ড এবং স্পেসিফিকেশন যা RESTful API এর ডিজাইন, ডকুমেন্টেশন, এবং ডেভেলপমেন্ট প্রক্রিয়া সহজ করে তোলে। OAS ব্যবহার করে আপনি API এর এন্ডপয়েন্ট, মেথড, ডেটা ফরম্যাট, নিরাপত্তা ব্যবস্থা এবং অন্যান্য উপাদান সংজ্ঞায়িত করতে পারেন। এটি একটি কাঠামো প্রদান করে, যাতে ডেভেলপাররা API ডিজাইন, ডকুমেন্টেশন তৈরি এবং কার্যকরী কোড দ্রুত তৈরি করতে পারেন।
OAS সাধারণত YAML বা JSON ফরম্যাটে লেখা হয়, এবং এটি একটি API-র সমস্ত বিবরণকে একটি স্ট্যান্ডার্ড ফরম্যাটে উপস্থাপন করে। OpenAPI Specification API গুলির মধ্যে ইন্টারঅপারেবিলিটি নিশ্চিত করে, যাতে বিভিন্ন প্ল্যাটফর্ম এবং ডেভেলপারদের মধ্যে সহজে API ব্যবহার করা যায়।
OpenAPI Specification এর মূল উপাদানসমূহ
OpenAPI Specification এর একটি OAS ডকুমেন্টে কিছু প্রধান উপাদান থাকে, যা API এর কাজ এবং ফাংশন সম্পূর্ণভাবে বর্ণনা করে।
1. Info Object
- info অংশে API সম্পর্কিত মেটাডেটা থাকে, যেমন:
- title: API এর নাম।
- description: API এর বর্ণনা।
- version: API এর সংস্করণ।
- termsOfService: API এর শর্তাবলী।
- contact: API এর সাথে যোগাযোগের তথ্য (যেমন ইমেইল বা ওয়েবসাইট)।
- license: API এর লাইসেন্স সম্পর্কিত তথ্য।
উদাহরণ:
info:
title: Sample API
description: A sample API to demonstrate OpenAPI Specification
version: 1.0.0
contact:
name: API Support
email: support@example.com
2. Servers Object
- servers অংশে API সার্ভারের বেস URL (এন্ডপয়েন্ট) উল্লেখ করা হয়। এটি সেই URL যা API এর রিকোয়েস্ট এবং রেসপন্স পরিচালনা করবে।
উদাহরণ:
servers:
- url: https://api.example.com/v1
3. Paths Object
- paths অংশে API এর এন্ডপয়েন্টের বিবরণ থাকে। এখানে প্রতিটি এন্ডপয়েন্ট এবং সেই এন্ডপয়েন্টে ব্যবহৃত HTTP মেথড (GET, POST, PUT, DELETE) এর বিস্তারিত তথ্য থাকে।
উদাহরণ:
paths:
/users:
get:
summary: Retrieve all users
responses:
'200':
description: A list of users
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
email:
type: string
4. Components Object
- components হল পুনঃব্যবহারযোগ্য স্কিমা (data models), রেসপন্স, নিরাপত্তা স্কিমা ইত্যাদির জন্য একটি অংশ। এটি API ডকুমেন্টেশনে পুনঃব্যবহারযোগ্য অংশের সংজ্ঞা দেয়, যাতে কোড পুনরাবৃত্তি কমানো যায়।
উদাহরণ:
components:
schemas:
User:
type: object
properties:
id:
type: integer
name:
type: string
email:
type: string
5. Security Object
- security অংশে API-র নিরাপত্তা ব্যবস্থা বর্ণনা করা হয়, যেমন OAuth, API Key, Basic Authentication ইত্যাদি। এটি নিশ্চিত করে যে API ব্যবহার করার জন্য উপযুক্ত নিরাপত্তা পদ্ধতি গ্রহণ করা হচ্ছে।
উদাহরণ:
security:
- api_key: []
components:
securitySchemes:
api_key:
type: apiKey
in: header
name: X-API-KEY
6. Responses Object
- responses অংশে API রেসপন্সের অবস্থা কোড এবং তার সাথে সম্পর্কিত বার্তা বা ডেটা বর্ণনা করা হয়।
উদাহরণ:
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
message:
type: string
'400':
description: Bad request
7. RequestBody Object
- requestBody অংশে API এর রিকোয়েস্ট বডির কাঠামো এবং সেটির ধরন নির্ধারণ করা হয়, যেমন JSON বা XML।
উদাহরণ:
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
email:
type: string
OpenAPI Specification (OAS) এর সুবিধা
- API Documentation:
- OpenAPI Specification API ডকুমেন্টেশন তৈরি করতে খুবই কার্যকরী। এটি ডেভেলপারদের জন্য API ব্যবহার করা, বুঝা এবং পরীক্ষা করা সহজ করে তোলে।
- Interoperability:
- OAS API গুলির মধ্যে ইন্টারঅপারেবিলিটি নিশ্চিত করে। বিভিন্ন প্ল্যাটফর্ম এবং টুলস একে অপরের সাথে কাজ করতে পারে কারণ এটি একটি সাধারণ এবং স্ট্যান্ডার্ড ফরম্যাট।
- Auto-generation of Code:
- OAS ডকুমেন্টেশন থেকে কোড অটোমেটিক্যালি জেনারেট করা যেতে পারে। Swagger Codegen বা OpenAPI Generator ব্যবহার করে ক্লায়েন্ট এবং সার্ভার কোড তৈরি করা সম্ভব।
- Tools Integration:
- OAS টুলস যেমন Swagger UI, Swagger Editor, এবং ReDoc API ডকুমেন্টেশন সহজে তৈরি এবং পর্যালোচনা করার জন্য ব্যবহৃত হতে পারে। Swagger UI ব্যবহার করে API এর কার্যকারিতা সরাসরি পরীক্ষা করা সম্ভব।
- Testing and Validation:
- OAS ডকুমেন্টেশন API এর বৈধতা পরীক্ষা করতে সাহায্য করে। এটি ডেভেলপারদের দ্রুত সমস্যাগুলি চিহ্নিত করতে এবং তাদের API এর বৈশিষ্ট্যগুলো সঠিকভাবে যাচাই করতে সহায়তা করে।
Swagger UI: OpenAPI Documentation
Swagger UI হল একটি ওপেন সোর্স লাইব্রেরি যা OpenAPI Specification অনুযায়ী ডকুমেন্টেশন প্রদর্শন করে এবং API এর সাথে ইন্টারঅ্যাক্ট করার জন্য একটি ইন্টারফেস প্রদান করে। এটি ব্যবহারকারীদের API কল পরীক্ষা করতে এবং ফলাফল দেখতে সহায়ক।
Swagger UI Example:
Swagger UI দিয়ে একটি OpenAPI ডকুমেন্টেশন এন্ডপয়েন্ট পরীক্ষা করতে পারা যায়:
- OpenAPI YAML ডকুমেন্ট আপলোড করা।
- API এর এন্ডপয়েন্টগুলো ব্রাউজ করা।
- API কল করা এবং রেসপন্স পরীক্ষা করা।
সারাংশ
OpenAPI Specification (OAS) একটি শক্তিশালী স্ট্যান্ডার্ড যা RESTful API ডিজাইন, ডকুমেন্টেশন এবং ডেভেলপমেন্ট প্রক্রিয়া সহজ করে তোলে। এটি API গুলির মধ্যে ইন্টারঅপারেবিলিটি, কোড অটোমেশন এবং সহজ ডিবাগিংয়ের জন্য একটি গুরুত্বপূর্ণ টুল। OAS ডকুমেন্টেশন API-এর কার্যকারিতা বুঝতে এবং দ্রুত ত্রুটি চিহ্নিত করতে সহায়ক। Swagger UI এবং Swagger Editor এর মাধ্যমে OAS ডকুমেন্টেশন ব্যবহারকারী বান্ধব এবং পরীক্ষাযোগ্য হয়।
Read more